package com.css.zfzx.sjcj.common;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author Zyl
 * @Date 2021/4/13 18:55
 * @Version 1.0
 * @Describe:
 */
public enum StatisticsEnum {

    /**
     * 枚举类也是java类，可以声明属性、方法（构造方法只能是私有的）、可以实现接口，但是不能继承（默认继承了java.lang.Enum），也不能被继承（默认使用final修饰）
     * LOCK,NORMAL 实际是  UserStatus的单例模式，如 public static final UserStatus LOCK = new UserStatus("0","锁定状态")
     * 如果枚举不需要属性，则可以声明一个无参的构造方法，然后定义一个无属性的枚举值，如OTHER
     * 枚举类实现接口后，可以分别在每个对象中实现接口方法
     */

    /**
     * ============================普查数据统计-菜单==================
     */
    // hddc_activefault
    HDDC_ACTIVEFAULT("1", "活动断层-线", "hddc_activefault", Constant.PATH1, "1"),
    //hddc_activefault_positionerror
    HDDC_ACTIVEFAULT_POSITIONERROR("2", "活动断层位置误差 ", "hddc_activefault_positionerror", Constant.PATH1, "1"),
    // hddc_d_resultmaptable     1:5 万活动断层分布图
    HDDC_D_MAP5("3", "1:5 万活动断层分布图", "hddc_d_resultmaptable", Constant.PATH1, "1"),
    // hddc_d_resultmaptable     1：5万活动断层分布图说明书
    HDDC_D_INSTRUCT5("4", "1：5万活动断层分布图说明书", "hddc_d_resultmaptable", Constant.PATH1, "1"),
    // hddc_d_resultmaptable     1：5万活动断层分布图成果报告
    HDDC_D_REPORT5("5", "1：5万活动断层分布图成果报告", "hddc_d_resultmaptable", Constant.PATH1, "1"),
    // hddc_d_resultmaptable     1:25 万地震构造图编制
    EQ_S_MAP25("6", "1:25 万地震构造图编制", "hddc_d_resultmaptable", Constant.PATH1, "1"),
    // hddc_d_resultmaptable     1:25 万地震构造图编制说明书
    HDDC_D_INSTRUCT25("7", "1:25 万地震构造图编制说明书", "hddc_d_resultmaptable", Constant.PATH1, "1"),
    // hddc_d_resultmaptable     1:25 万地震构造图编制成果报告
    HDDC_D_REPORT25("8", "1:25 万地震构造图编制成果报告", "hddc_d_resultmaptable", Constant.PATH1, "1"),
    //qh_probability_earthquake_danger
    QH_PEDANGER("9", "地震动PGA等值线图", "qh_probability_earthquake_danger", Constant.PATH2, "1"),
    //qh_risk_level_map_point
    QH_RLMAP_POINT("10", "地震危险性等级图(矢量点)", "qh_risk_level_map_point", Constant.PATH2, "1"),
    //qh_risk_level_map_polygon
    QH_RLMAP_POLYGON("11", "地震危险性等级图(矢量面)", "qh_risk_level_map_polygon", Constant.PATH2, "1"),
    //yh_disaster 市政桥梁地震隐患评估成果图
    YH_DISASTER_FW("12", "房屋建筑物地震隐患评估图", "yh_disaster", Constant.PATH3, "1"),
    YH_DISASTER_SZ("13", "市政桥梁地震隐患评估图", "yh_disaster", Constant.PATH3, "1"),
    YH_DISASTER_CS("14", "城市自来水厂地震隐患评估图", "yh_disaster", Constant.PATH3, "1"),
    //fxqh_priority
    FXQH_PRIORITY("15", "地震灾害防治区划图(抗震加固优先级)", "fxqh_priority", Constant.PATH4, "1"),
    //fxqh_hdc100
    FXQH_HDC100("16", "地震灾害防治区划图(活动断层100m避让缓冲区)", "fxqh_hdc100", Constant.PATH4, "1"),
    //fxqh_hdc200
    FXQH_HDC200("17", "地震灾害防治区划图(活动断层200m避让缓冲区)", "fxqh_hdc200", Constant.PATH4, "1"),
    //fx_economic_loss_level_map
    FX_ECOLL_MAP_63("18", "50年超越概率63%地震作用下房屋直接经济损失等级图", "fx_economic_loss_level_map", Constant.PATH5, "1"),
    FX_ECOLL_MAP_10("19", "50年超越概率10%地震作用下房屋直接经济损失等级图", "fx_economic_loss_level_map", Constant.PATH5, "1"),
    FX_ECOLL_MAP_2("20", "50年超越概率2%地震作用下房屋直接经济损失等级图", "fx_economic_loss_level_map", Constant.PATH5, "1"),
    FX_ECOLL_MAP_1("21", "100年超越概率1%地震作用下房屋直接经济损失等级图", "fx_economic_loss_level_map", Constant.PATH5, "1"),
     //fx_casualty_level_map
    FX_CASL_MAP_63("22", "50年超越概率63%地震作用下房屋破坏导致的死亡人口等级图", "fx_casualty_level_map", Constant.PATH5, "1"),
    FX_CASL_MAP_10("23", "50年超越概率10%地震作用下房屋破坏导致的死亡人口等级图", "fx_casualty_level_map", Constant.PATH5, "1"),
    FX_CASL_MAP_2("24", "50年超越概率2%地震作用下房屋破坏导致的死亡人口等级图", "fx_casualty_level_map", Constant.PATH5, "1"),
    FX_CASL_MAP_1("25", "100年超越概率1%地震作用下房屋破坏导致的死亡人口等级图", "fx_casualty_level_map", Constant.PATH5, "1"),
    //fx_economic_loss_evaluation_map
    FX_ECOL_63("26", "50年超越概率63%地震作用下房屋直接经济损失评估图", "fx_economic_loss_evaluation_map", Constant.PATH5, "1"),
    FX_ECOL_10("27", "50年超越概率10%地震作用下房屋直接经济损失评估图", "fx_economic_loss_evaluation_map", Constant.PATH5, "1"),
    FX_ECOL_2("28", "50年超越概率2%地震作用下房屋直接经济损失评估图", "fx_economic_loss_evaluation_map", Constant.PATH5, "1"),
    FX_ECOL_1("29", "100年超越概率1%地震作用下房屋直接经济损失评估图", "fx_economic_loss_evaluation_map", Constant.PATH5, "1"),
    //fx_casualty_evaluation_map
    FX_CASL_EMAP_63("30", "50年超越概率63%地震作用下房屋破坏导致的死亡人口评估图", "fx_casualty_evaluation_map", Constant.PATH5, "1"),
    FX_CASL_EMAP_10("31", "50年超越概率10%地震作用下房屋破坏导致的死亡人口评估图", "fx_casualty_evaluation_map", Constant.PATH5, "1"),
    FX_CASL_EMAP_2("32", "50年超越概率2%地震作用下房屋破坏导致的死亡人口评估图", "fx_casualty_evaluation_map", Constant.PATH5, "1"),
    FX_CASL_EMAP_1("33", "100年超越概率1%地震作用下房屋破坏导致的死亡人口评估图", "fx_casualty_evaluation_map", Constant.PATH5, "1"),

    ;

    /**
     * 任务id
     */
    private String taskId;
    /**
     * 任务名称
     */
    private String taskName;
    /**
     * 任务表名
     */
    private String taskTable;
    /**
     * 任务附件路径
     */
    private String taskAttachmetPath;
    /**
     * 使用状态
     */
    private String status;

    StatisticsEnum(String taskId, String taskName, String taskTable, String taskAttachmetPath, String status) {
        this.taskId = taskId;
        this.taskName = taskName;
        this.taskTable = taskTable;
        this.taskAttachmetPath = taskAttachmetPath;
        this.status = status;
    }

    public String getTaskId() {
        return taskId;
    }

    public String getTaskName() {
        return taskName;
    }

    public String getTaskTable() {
        return taskTable;
    }

    public String getTaskAttachmetPath() {
        return taskAttachmetPath;
    }

    public String getStatus() {
        return status;
    }

    /**
     * 如果不重写toString方法，在调用枚举的时候，是输出的枚举名
     * 如 TaskInfoEnum.EQ_SURVEY，将输出EQ_SURVEY
     */
    @Override
    public String toString() {
        return "StatisticsEnum{" +
                "taskId='" + taskId + '\'' +
                ", taskName='" + taskName + '\'' +
                ", taskTable='" + taskTable + '\'' +
                ", taskAttachmetPath='" + taskAttachmetPath + '\'' +
                ", status='" + status + '\'' +
                '}';
    }

    /**
     * 根据任务名称获取任务对象(枚举实例)
     *
     * @param taskId
     * @return
     */
    public static StatisticsEnum getInstanceByName(String taskId) {
        for (StatisticsEnum menu : StatisticsEnum.values()) {
            if (menu.getTaskId().equals(taskId)) {
                return menu;
            }
        }
        return null;
    }

}
